// package com.xjh.utils.file;
//
// /**
//  * @Author:XuJianHua
//  * @Date:2023/2/1
//  * @Description:
//  */
//
// import cn.hutool.core.date.DateTime;
// import cn.hutool.core.date.DateUtil;
// import com.xjh.utils.util.TipUtil;
// import org.apache.commons.lang3.StringUtils;
//
//
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.data.mongodb.core.mapping.Document;
// import org.springframework.stereotype.Component;
//
// import java.util.*;
//
//
// /**
//  * @Author:XuJianHua
//  * @Date:2023/1/13
//  * @Description:
//  */
// @Component
// public class MongoDBUtil {
//     /**
//      * @Author XuJianHua
//      * @Date 2023/1/14 12:27
//      * @Description 保存数据时获取集合名
//      * @Param obj 保存的对象
//      * @Return collectionName 集合名
//      */
//
//     public String getCollectionNameWhenInsert(Object obj) {
//         Class objClass = obj.getClass();
//         String collectionName = null;
//         // obj是集合类型
//         if (objClass.isAssignableFrom(ArrayList.class)
//                 || objClass.isAssignableFrom(List.class)
//                 || objClass.isAssignableFrom(LinkedList.class)) {
//             List<Object> list = (List<Object>) obj;
//             TipUtil.isBlankMsg(list, "保存时没有传入数据，无法获取到对应mongoDB集合名");
//             Object poObj = list.get(0);
//             Document document = (Document) poObj.getClass().getAnnotation(Document.class);
//             collectionName = document.collection();
//         } else {
//             // obj是实体类类型
//             Document document = (Document) objClass.getAnnotation(Document.class);
//             collectionName = document.collection();
//         }
//         TipUtil.isBlankMsg(collectionName, "无法获取到所要保存的mongoDB集合名");
//         return collectionName + "_" + IMongoDBCollectionYearEnum.getYear(new Date());
//
//     }
//
//     /**
//      * @Author XuJianHua
//      * @Date 2023/1/14 12:27
//      * @Description 查询数据时获取集合名
//      * @Param cla 查询实体的class
//      * @Param time 查询的开始时间，不传默认为当前时间
//      * @Return collectionName 集合名
//      */
//     public String getCollectionNameWhenSearch(Class cla, String time) {
//         Document document = (Document) cla.getAnnotation(Document.class);
//         String collectionName = document.collection();
//         TipUtil.isBlankMsg(collectionName, "无法获取到所要查询的mongoDB集合名");
//         if (StringUtils.isNotBlank(time)) {
//             // DataArchivingConfigServiceImpl dataArchivingConfigService = new DataArchivingConfigServiceImpl();
//             // DataArchivingConfig archivingByNameAndTime = dataArchivingConfigService.getArchivingByNameAndTime(collectionName, time);
//             // collectionName = archivingByNameAndTime.getCollectionName();
//         }
//         return collectionName;
//     }
// }
